Sample-rate conversion refers to the process of translating a sequence of discrete data samples with a certain sampling rate into another sequence with a different sampling rate, while preserving the information contained in the original sequence. Sample rate conversion can be a relatively simple technique where the two sample rates are related by fairly small integer values. For example, if the ratio of sample rates is 4:5, the input signal only needs to be upsampled by a factor of four and then, after appropriate filtering, downsampled by a factor of five.
FIG. 1 illustrates an example of such a prior art sample rate conversion technique. In FIG. 1, input data may be upsampled by a factor of M in upsampler 110, to produce an upsampled data stream. Upsampling may include the process of creating new intermediate samples by inserting intermediate samples. Upsampled data may be filtered in low pass filter 120, which may be a digital filter. The resultant data may be downsampled by a factor of N in downsampler 130. Downsampling may include decimating (eliminating) intermediate sample values to create a new sample set at the desired output sample rate. In the example given above for a ratio of sample rates of 4:5, M would equal 4 and N would equal 5.
The sample rate conversion technique illustrated in FIG. 1 may be suitable for relatively simple rate conversions, but not all applications where sample rate conversion is desired have such simple sample rate ratios. For example, one application in which the amount of processing required to upsample and then downsample may be prohibitive because of the drastic ratios (e.g., 124:359) that are common is asynchronous sample-rate conversion. The term “asynchronous sample-rate conversion” is often used to signify situations where the ratios are rather ill-defined numbers such that their least common multiple is a very large number. Asynchronous sample rate conversion is particularly applicable in cases where data is sampled by a sampling block clocked with a different clock rate than other components of the sample rate conversion block, thus likely having a slightly different sampling rate. For example, one set of data might have a sampling rate of 48 KHz, while another set of data might have a sampling rate of 48.23 KHz. Such ratios that are close to 1:1, but not exact, fall into the category of “asynchronous sample-rate conversion.” Asynchronous sample rate converters (SRCs) may be used when bridging two systems that operate on different sampling rates and/or master operating clocks. Additionally, in audio applications, there are various standards that utilize different sampling rates, such as 32 KHz, 44.1 KHz, 48 KHz, and asynchronous SRCs may be used to interconnect different systems with the different standards. Because of the amount of processing required to handle the drastic ratios common in asynchronous sample-rate conversion applications, traditional SRCs, such as the SRC illustrated in FIG. 1, are costly to use for asynchronous sample-rate conversion applications, if used at all.
In some applications, a digital data stream may need to be filtered in addition to being converted to a different sampling frequency. One way to accomplish this task includes a sample rate conversion block followed by (or preceded by) a filter block. Such a setup is illustrated in FIG. 2. In the two systems of FIG. 2, an input signal u(k) 210 may be fed to a SRC 220 and a digital filter 230, in either order depending upon which side of the SRC the filtering is performed. SRC 220 alters the sample rate of the digital input data u(k) to a different sampling rate than the input signal, and may be either synchronous or asynchronous. Digital filter 230 may perform a number of digital filtering operations as desired by a user to alter the input signal. Output signal y(k) 240 is thus suitably filtered and converted for a desired end use.
FIG. 3 illustrates an example of a CIC digital filter which may be used as digital filter 230 in FIG. 2. A CIC filter may be used to perform digital filtering and integer sample rate conversion. In particular, CIC filter 300 includes a comb filter stage 302, an interpolator 304, and an integrating stage 306. By using the comb filter stage 302 to set the zeros of the CIC filter and the integrating stage 306 to set the poles of the CIC filter, the CIC filter may operate as a low pass filter. In addition, by using an interpolator 304 between the comb filter stage 302 and the integrating stage 306, the CIC filter 300 may also perform upsampling. The CIC filter 300 may also be used to perform downsampling while operating as a low pass filter by reversing the order of the stages and replacing the interpolator with a decimator. One primary drawback of CIC filter 300 is that it can only perform integer sample rate conversion and with a limited conversion range.
Although the systems of FIG. 2 may perform sample rate conversion and digital filtering, the systems of FIG. 2 require separate components and/or software for the digital filtering and sample rate conversion steps, such as the CIC filter illustrated in FIG. 3 and the traditional sample rate conversion scheme illustrated in FIG. 1, respectively. Thus, the solutions of FIG. 2 can be prohibitively complex for many applications. In addition, the solutions illustrated in FIGS. 2 and 3 do not resolve the limitations of the SRC block illustrated in FIG. 1 in performing complicated non-integer sample rate conversion.
Shortcomings mentioned here are only representative and are included simply to highlight that a need exists for improved electrical components, particularly for rate converters employed in consumer-level devices, such as mobile phones and media devices. Embodiments described herein address certain shortcomings but not necessarily each and every one described here or known in the art.